// 2024.06.01 12:57 晴 星期六 又给我 整 沉默了 去和 小8 玩吧
/**
 * 做 avanda obj settle info open by combine key and locks
 */

import {
  emptyClone,
  toStringTypeCheck,
} from '../../components/aaanewApp/global/global';
import { avandaTaskObj } from '../avanda/avandaUnitObj/avandaUnitObj';
import { ana_ConbineInfo } from './analysisConbineInfo/analysisConbineInfo';

// const $data="$data"

const data = 'data';

/**
 * avanda 的 单元 object tostringType 名称
 */
const avandaStringTag = 'avandaTaskObject';
const TostrAvandaObj = avandaStringTag;

const el_settleInfo = 'el_settleInfo';

let elSettleExtendInfo = {
  data: ['attribute', 'conbineInfo'],
  // 组合 类型
  attribute: new String(),
  //结合关键字
  conbineInfo: new String(),
};

/**
 *
 * @param {avandaTaskObj} Ava_o avandaTaskObj 对象
 */
function userExtend_elSettleInfo(Ava_o, { attribute, conbineInfo }) {
  if (!toStringTypeCheck(Ava_o, TostrAvandaObj)) {
    console.log(
      'sorry your Arguments[0] : Ava_o  is not constructor by ' + TostrAvandaObj
    );
    return;
  }
  /**
   * 克隆 SettleInfo 信息
   */
  let C_elSettleExtendInfo = emptyClone(elSettleExtendInfo);

  //   constructor 信息
  C_elSettleExtendInfo['attribute'] = attribute;
  C_elSettleExtendInfo['conbineInfo'] = ana_ConbineInfo(conbineInfo);

  //   添加 el_settleInfo 信息
  Ava_o.extendAvanda(el_settleInfo, C_elSettleExtendInfo);

  //   添加 用户 data 项目 -- $data 已经包含 具体实例  只是 未在 data 中声明
  Ava_o[data] = emptyClone(C_elSettleExtendInfo[data]);
}
export { userExtend_elSettleInfo as extendElSettleInfo };
